Sesebuah paket IP terdiri daripada bahagian pengepala dan bahagian data.
Penggepala
Pengepala paket IPv4 terdiri daripada 13 medan, yang mana 12 diperlukan. Medan yang ke-13 adalah tidak wajib (berlatar merah dalam jadual) dan lantas dinamakan: pilihan. Medan dalam pengepala dipaketkan dengan bait paling bererti terlebih dahulu (big endian), dan untuk gambar rajah dan perbincangan, bit paling bererti datang dulu (Penomboran bit MSB 0). Bit paling bererti dinomborkan 0, jadi medan versi sebenarnya boleh ditemukan dalam empat bit paling bererti bagi bait pertama, sebagai contoh:
ofset bit | 0–3 | 4–7 | 8–15 | 16–18 | 19–31 |
---|
0 | Versi | Panjang pengepala | DiffServ | Jumlah Panjang |
---|
32 | Pengenalpastian | Bendera | Ofset Serpihan |
---|
64 | Masa Hayat | Protokol | Hasil Tambah Semak Pengepala |
---|
96 | Alamat Sumber |
---|
128 | Alamat Destinasi |
---|
160 | Pilihan ( jika Panjang Pengepala > 5 ) |
---|
160 or 192+ | Data |
---|
Versi Medan pengepala pertama dalam sesebuah
paket IP ialah medan versi empat bit. Bagi IPv4, nilainya ialah 4 (maka dinamakan IPv4).Panjang Pengepala Internet (IHL) Medan kedua (4 bit) ialah Panjang Pengepala Internet (IHL) menguraikan bilangan 32-bit
kata dalam pengepala. Oleh kerana pengepala IPv4 boleh mengandungi bilangan pilihan tidak tetap, medan ini menyatakan saiz pengepala (ini juga sekena dengan ofset kepada data). Nilai minimum bagi medan ini ialah 5 (
RFC 791), dengan kepanjangan 5×32 = 160 bit = 20 bait. Kerana nilainya empat bit, panjang maksimumnya ialah 15 kata (15×32 bit) atau 480 bit = 60 bait.DiffServ (DS)
Asalnya ditakrifkan sebagai medan ToS, medan ini kini ditakrifkan oleh
RFC 2474 untuk
DiffServ dan oleh
RFC 3168 untuk
Explicit Congestion Notification (ECN), memadankan
IPv6. Teknologi-teknologi adalah semakin maju yang memerlukan penstriman data masa sebenar dan dengan itu akan menggunakan medan DS. Salah satu contoh ialah
Suara melalui IP (VoIP) yang digunakan untuk pertukaran suara data interaktif.Medan
Type of Service (ToS) asalnya bertujuan untuk sesebuah hos penghantar menyatakan pilihan bagi cara datagram patut dikendalikan sedang ia merentasi Internet. Sebagai contoh, sesebuah hos boleh menetapkan medan ToS datagram IPv4nya untuk memilih lengahan rendah, sementara yang lain mungkin memilih keutuhan tinggi. Secara praktikal, medan ToS tidak digunakan secara meluas. Walau bagaimanapun, banyak kerja ujikaji, penyelidikan dan pengerahan telah tertumpu kepada cara untuk menggunakan lapan bit ini, lantas terhasilnya takrifan medan DS yang sekarang.Seperti yang ditakrifkan dalam
RFC 791, lapan bit berikut diuntukkan kepada medan ToS:
- bits 0–2: Duluan (111 - Kawalan Rangkaian, 110 - Kawalan Antara Rangkaian, 101 - CRITIC/ECP, 100 - Penggubal Flash, 011 - Flash, 010 - Segera, 001 - Keutamaan, 000 - Rutin)
- bit 3: 0 = Lengahan Normal, 1 = Lengahan Rendah
- bit 4: 0 = Truput Normal, 1 = Truput Tinggi
- bit 5: 0 = Keutuhan Normal, 1 = Keutuhan Tinggi
- bit 6: 0 = Kos Normal, 1 = Kurangkan Kos Kewangan (ditakrifkan oleh RFC 1349)
- bit 7: belum ditakrifkan
Jumlah Panjang Medan sepanjang 16-bit ini mentakrifkan keseluruhan saiz datagram, termasuk pengepala dan data, dalam bait. Panjang minima datagram adalah 20 bait (20-bait pengepala + 0 bait data) dan maksima adalah 65,535 — nilai maksima bagi perkataan 16-bit. Saiz minima datagram yang sebarang host
perlukan bagi mampu dikendali adalah 576 bait, tetapi kebanyakan hos moden mengendali paket lebih besar. Kadang-kala subrangkaian menetapkan had tambahan pada saiz, dalam kes ini datagram perlu diserpihkan. Serpihan dikendali pada samada suis paket atau hos dalam IPv4.Pengenalpastian Medan ini merupakan medan pengenalpastian dan digunakan khusus bagi mengenal pasti serpihan dari datagram IP asal. Sesetengah ujian mencadangkan menggunakan medan ID bagi tujuan lain, seperti untuk menambah maklumat penyurihan paket pada datagram bagi membantu mengesan kembali datagram dengan alamat sumber dari
serangan perdayaan.Bendera Medan tiga bit seterusnya dan digunakan bagi mengawal dan mengenal pasti serpihan. Ia adalah (dalam turutan, dari tahap tertinggi pada tahap terendah):
- bit 0: Disimpan; mesti sifar.[note 1]
- bit 1: Jangan Serpihkan (DF)
- bit 2: Lebih Serpihan (MF)
Jika bendera DF disetkan dan penyerpihan diperlukan untuk menghalakan sesebuah paket, maka paket tersebut akan ditolak. Ini dapat digunakan apabila menghantar paket kepada hos yang tidak memiliki sumber yang cukup untuk mengendalikan penyerpihan.Apabila sesebuah paket diserpihkan, bendera MF bagi semua serpihan akan diset kecuali serpihan yang akhir. Bendera MF juga tidak diset pada paket yang tidak diserpihkan — sesebuah paket yang tidak diserpihkan merupakan serpihan terakhirnya sendiri.Ofset Serpihan Medan ofset serpihan diukur dalam unit blok lapan bait, berkepanjangan 13 bit dan menyatakan ofset bagi serpihan tertertu relatif kepada permulaan datagram IP asal yang belum diserpihkan. Ofset serpihan pertama adalah sifar. Ini membenarkan ofset maksimum (213 – 1) × 8 = 65,528 bait yang mana lebih daripada panjang maksimum paket IP 65,535 bait termasuk pengepalanya (65,528 + 20 = 65,548 bait).Masa Hayat (TTL) Medan lapan bit
masa hayat (TTL) membantu mengelakkan datagram daripada menetap di Internet. Medan ini menghadkan jangka hayat sesebuah datagram. Ia dinyatakan dalam saat, tapi buat sela masa kurang daripada 1 saat, ia akan dibundarkan kepada satu. Dalam kependaman biasa dalam praktik, ia dijadikan sebagai medan
kiraan hop. Setiap
penghala yang direntasi sesebuah datagram mengurangkan medan TTL dengan satu. Bila saja medan TTL mencapai sifar, paket tidak lagi akan dimajukan oleh suis paket dan dibuang. Biasanya, mesej
ICMP (khususnya
Time Exceeded) akan dihantar balik kepada penghantar yang ia telah dibuang. Penerimaan mesej-mesej ICMP ini adalah kunci bagaimana
traceroute berfungsi.Protokol Medan ini mentakrifkan protokol yang digunakan dalam bahagian data bagi sesebuah datagram IP.
Internet Assigned Numbers Authority menyenggara satu senarai nombor-nombor protokol yang asalnya ditakrifkan dalam
RFC 790. Protokol-protokol biasa dan nilai perpuluhannya ditunjukkan di bawah (lihat
Data).Hasil Tambah Semak Pengepala Medan hasil tambah semak (h.t.s.) 16-bit digunakan untuk pemeriksaan ralat pengepala. Pada setiap hop, h.t.s. pengepala harus dibandingkan dengan nilai medan ini. Jika ada satu h.t.s. yang tidak cocok, maka paket tersebut akan dibuang. Perhatikan bahawa ralat dalam medan data akan ditangani oleh protokol yang dikapsulkan - tentu sekali, kedua-dua
UDP dan
TCP mempunyai medan h.t.s..Kerana medan TTL dikurangkan pada setiap hop dan penyerpihan boleh dilakukan pada setiap hop, maka, h.t.s. akan dikira semula pada setiap hop. Kaedah yang digunakan untuk mengira semula h.t.s. ditakrifkan dalam
RFC 1071:Medan hasil tambah semak adalah pelengkap satu 16-bit bagi jumlah pelengkap satu bagi semua kata 16-bit dalam pengepala. Nilai medan hasil tambah semak adalah sifar untuk tujuan mengira hasil tambah semak.Dalam kata lain, semua kata 16-bit dijumlahkan bersama menggunakan
pelengkap satu (dengan medan h.t.s. disetkan menjadi sifar). Jumlah tadi kemudiannya dilengkapsatukan dan jumlah akhir ini disisipkan sebagai medan h.t.s..Sebagai contoh, bagi Heks 45000030442240008006442e8c7c19acae241e2b (pengepala IP 20 bait):4500 + 0030 + 4422 + 4000 + 8006 + 0000 + 8c7c + 19ac + ae24 + 1e2b = 2BBCF2 + BBCF = BBD1 = 1011101111010001, lengkapan 1 untuk jumlah = 0100010000101110 = 442EAlgoritma yang sama boleh digunakan untuk mengesahkan h.t.s. sesuatu pengepala — h.t.s. bagi pengepala dengan medan h.t.s. diisikan seharusnya satu kata yang mengandungi semua sifar (nilai 0).Alamat sumber Alamat IPv4 adalah kumpulan empat oktet dengan jumlah 32 bit. Nilai medan ini ditentukan dengan mengambil nilai perduaan setiap oktet dan menggabungkan mereka menjadi satu nilai 32 bit tunggal.Sebagai contoh, alamat 10.9.8.7 akan jadi 00001010000010010000100000000111.Alamat ini adalah alamat bagi penghantar paket. Perhatikan bahawa alamat ini mungkin bukan penghantar "sebenar" paket disebabkan oleh
terjemahan alamat rangkaian. Sebaliknya, alamat sumber tersebut akan diterjemahkan oleh mesin NAT kepada alamatnya sendiri. Jadi, paket-paket balasan yang dihantar oleh penerima dihalakan ke mesin NAT, yang menterjemahkan alamat destinasi kepada alamat asal penghantar.Alamat destinasi Serupa dengan alamat sumber tetapi untuk penerima paket.Pilihan Medan-medan pengepala tambahan mungkin menyusuli medan alamat destinasi, namun ini jarang digunakan. Perhatikan bahawa nilai dalam medan IHL mesti menyertakan kata 32-bit tambahan yang cukup untuk memegang kesemua pilihan (termasuk sebarang pad diperlukan untuk memastikan yang pengepala mengandungi nombor integer kata 32-bit). Senarai pilihan boleh dimatikan dengan pilihan EOL (
End of Options List, 0x00); ini cuma perlu jika penghujung pilihan tidak akan sama dengan penghujung pengepala. Pilihan-pilihan yang boleh diletakkan di dalam pengepala adalah seperti berikut:
Medan | Saiz (bit) | Huraian |
---|
Copied | 1 | Diset kepada 1 jika pilihan perlu disalin kedalam semua serpihan bagi paket terserpih. |
Option Class | 2 | Kategori pilihan yang umum. 0 untuk pilihan "control", dan 2 untuk "debugging and measurement". 1, dan 3 adalah simpanan. |
Option Number | 5 | Menyatakan pilihan. |
Option Length | 8 | Menunjukan saiz bagi keseluruhan pilihan (termasuk medan ini). Medan ini mungkin tiada untuk pilihan mudah. |
Option Data | Boleh ubah | Data berkhususkan pilihan. Medan ini mungkin tiada untuk pilihan mudah. |
- Catatan: Jika Panjang Pengepala lebih besar daripada 5, yakni berada di antara 6-15, ini bermakna yang medan Pilihan wujud dan harus diambil kira.
- Catatan: Copied, Option Class, dan Option Number kadang kala dirujuk sebagai satu medan lapan bit tunggal - Option Type.
Penggunaan pilihan
LSRR dan
SSRR tidak digalakkan kerana boleh memberi kesan terhadap keselamatan; paket blok kebanyakan penghala mengandungi pilihan-pilihan ini.[
petikan diperlukan]
Data
Ruang terakhir bukanlah sebahagian daripada pengepala dan, dengan itu, tidak disertakan dalam ruang hasil tambah semak.Kadungan ruang data dinyatakan dalam ruang pengepala protokol dan boleh jadi salah satu daripada protokol-protokol lapisan pengangkutan.
Antara protokol yang sering digunakan, termasuk nilainya dalam ruang protokol, disenaraikan di bawah:
Lihat Senarai nombor protokol IP untuk senarai yang lengkap.